In the known art, network switches employ hash tables to map keys to destinations in order to carry out load balancing across a bladecenter. The key is normally a source IP address or combination of IP addresses associated with destinations. The destination of a key is the current or initial destination to which the traffic is being redirected by the switch for the given key. Known hash tables may map a given key to a bucket in the hash table, with the bucket containing the value of a destination.
If a destination goes offline, keys currently allocated to that destination are distributed amongst the remaining online destinations. Sometimes, when a destination goes offline, all of the keys are allocated to new primary destinations. Typical known network switches only have the concept of a single destination. However, typical known network switches do not have a concept of including more than one destination per key.
The initial destination is the current destination to which the traffic is being redirected by the switch. The backup destination is the replacement destination should the initial destination go offline. Having a initial destination and backup destination is required for redundancy (i.e. for fast failover).
In a network switch, should a destination go offline, then the keys whose initial destination is that destination will need to be reallocated to a new destination. The new destination will be the current backup destination. For the remaining keys for the other online destinations, the primary destination remains unchanged. However, for those keys whose backup destination is the offline destination, new backup destinations will need to be reallocated. It has been discovered that current switch hash functions do this, but in addition the known current switch has functions which reallocate backup destinations even for those keys whose backup destinations are not the offline destination.
This causes a problem for middleware software design, which typically is designed so that most keys will not need reallocating (for either initial or backup destinations) except for those keys whose initial or backup destinations have gone offline.